home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DBio / DMegaSequence.h < prev    next >
Text File  |  1996-07-05  |  3KB  |  77 lines

  1. // DMegaSequence.h 
  2. // by d.g.gilbert, Oct 1990 -- 1996
  3.  
  4.  
  5. #ifndef __UMEGASEQUENCE__
  6. #define __UMEGASEQUENCE__
  7.  
  8.  
  9. #include <DSequence.h>
  10.             
  11. //typedef    char         SeqName[kNameWidth+1];
  12.  
  13. class    DMegaSequence : public DSequence {
  14.  
  15. // for LARGE sequences (up to ? 10+ megabases .. suitable for at least microbial genomes)
  16.  
  17. protected:
  18.     long fNparts, fPartsize;
  19.     void countparts( char* seq, long& len, long& nparts, long& partsize);
  20.  
  21. public:
  22.     enum { kMegaPartSize = 32000 }; // => 10 parts= 320kb seq, 100 parts= 3.2MB seq...
  23.  
  24.     DMegaSequence();
  25.     virtual ~DMegaSequence();
  26.  
  27.     virtual DObject* Clone(); // override 
  28.     virtual void CopyContents( DSequence* fromSeq);
  29.     
  30.     virtual char* Bases() const;
  31.     virtual char* Masks() const;
  32.     
  33.     virtual void SetBases( char*& theBases, Boolean duplicate = false);
  34.     virtual void UpdateBases( char* theBases, long theLength); // caller must know what he does  
  35.     virtual void SetMasks( char*& theMasks, Boolean duplicate = false);
  36.     virtual void FixMasks();
  37.  
  38.     virtual void SetSelection( long start, long nbases);
  39.     virtual void GetSelection( long& start, long& nbases);
  40.     virtual void ClearSelection();
  41.     virtual void InsertSpacers( long insertPoint, long insertCount, char spacer);
  42.     
  43.     virtual DSequence* CopyRange();
  44.     virtual DSequence* CutRange();
  45.     virtual DSequence* PasteBases( long insertPoint, char* fromBases, char* fromMasks);
  46.     virtual DSequence* Reverse();
  47.     virtual DSequence* Complement();
  48.     virtual DSequence* Dna2Rna( Boolean toRna);
  49.     virtual DSequence* ChangeCase( Boolean toUpper);
  50.     virtual DSequence* Translate(Boolean keepUnselected = true);
  51.     virtual DSequence* Slide( long slideDist);
  52.     virtual DSequence* Compress();
  53.     virtual DSequence* CompressFromMask(short masklevel);
  54.     virtual DSequence* LockIndels( Boolean doLock);
  55.     virtual DSequence* OnlyORF(char nonorf = '~');
  56.  
  57.     virtual long Search( char* target, Boolean backwards);
  58.     virtual void SearchORF( long& start, long& stop); 
  59.     virtual void NucleicSearch(char* source, char* target, SearchRec& aSearchRec);
  60.     virtual void ProteinSearch(char* source, char* target, SearchRec& aSearchRec);
  61.  
  62.     virtual void UpdateFlds(); 
  63.     
  64.     virtual short MaskAt(long baseindex, short masklevel= 1);
  65.     virtual void  SetMaskAt(long baseindex, short masklevel= 1, short maskval= 1);
  66.     virtual void  FlipMaskAt(long baseindex, short masklevel= 1);
  67.     virtual void  SetMask(short masklevel= 1, short maskval= 1); 
  68.     virtual void  FlipMask(short masklevel= 1); 
  69.     virtual Boolean IsMasked(unsigned char maskbyte, short masklevel);
  70.  
  71.     virtual void DoWrite( DFile* aFile, short format);  // revise for ostream
  72.     virtual void DoWriteSelection( DFile* aFile, short format); // revise for ostream
  73. };
  74.  
  75.  
  76. #endif
  77.